/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package edu.ucue.ptc.rest;

import edu.ucue.ptc.gco.mdl.Ciudad;
import edu.ucue.ptc.gco.mdl.Cliente;
import edu.ucue.ptc.gco.mdl.Direccion;
import edu.ucue.ptc.gco.ngc.ClienteManagerLocal;
import edu.ucue.ptc.gco.ngc.DireccionManagerLocal;
import edu.ucue.ptc.gco.ngc.UsuarioManagerLocal;
import edu.ucue.ptc.gco.util.AtributoInvalidoException;
import edu.ucue.ptc.gco.util.DireccionValidadorException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.UriInfo;
import javax.ws.rs.PathParam;
import javax.ws.rs.Consumes;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.GET;
import javax.ws.rs.Produces;
import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;

/**
 * REST Web Service
 *
 * @author Valex
 */
@Path("crearDireccion/{callePrincipal}/{calleSecundaria}/{numero}/{latitud}/{longitud}/{idCliente}/{idCiudad}/{user}/{password}/{callback}")
@RequestScoped
public class CrearDireccionResource {

    @Context
    private UriInfo context;

    @Inject
    private DireccionManagerLocal DireccionManager;
    
    /**
     * Creates a new instance of CrearDireccionResource
     */
    public CrearDireccionResource() {
    }

    /**
     * Retrieves representation of an instance of edu.ucue.ptc.rest.CrearDireccionResource
     * @return an instance of java.lang.String
     */
    @GET
    @Produces("application/json")
    public String getJson(@PathParam("callePrincipal") String callePricipal, @PathParam("calleSecundaria") String calleSecundaria, 
    @PathParam("numero") String numero, @PathParam("latitud") String latitud, @PathParam("longitud") String longitud,  
    @PathParam("idCliente") int idCliente, @PathParam("idCiudad") int idCiudad,  @PathParam("user") String user,         
    @PathParam("clave") String pass,@PathParam("callback") String callback) throws AtributoInvalidoException {
        
        try {
            //TODO return proper representation object
            Direccion direccion=new Direccion();
            direccion.setCallePrincipal(callePricipal);
            direccion.setCalleSecundaria(calleSecundaria);
            direccion.setNumeracion(numero);
            direccion.setLatitud(latitud);
            direccion.setLongitud(longitud);
            Cliente cliente=new Cliente();
            cliente.setIdPersona(idCliente);
            direccion.setPersona(cliente);
            Ciudad ciudad=new Ciudad();
            ciudad.setIdCiudad(idCiudad);
            direccion.setCiudad(ciudad);
            DireccionManager.crear(direccion,user,pass);
            return callback+"({\"callback\":\"" + callback + "\",\"respuesta\":\"" + "Ingreso Exitoso" + "\"})";
        } catch (DireccionValidadorException ex) {
             return callback+"({\"callback\":\"" + callback + "\",\"errormsg\":\"" + "DireccionValidadorExcepton" + "\"})";
        }
        
    }

    /**
     * PUT method for updating or creating an instance of CrearDireccionResource
     * @param content representation for the resource
     * @return an HTTP response with content of the updated or created resource.
     */
    @PUT
    @Consumes("application/json")
    public void putJson(String content) {
    }
}
